/*
 * joueur.h
 *
 *  Created on: Apr 20, 2011
 *      Author: gorus
 */

#ifndef JOUEUR_H_
#define JOUEUR_H_

#include "constante.h"
#include "explosion.h"
/*
 * Définition de la structure joueur
 */
typedef struct donnees_joueur{
	char* nom;
	double* vitesse;
	int* saut;
	int* direction;
	double* pos_x;
	double* pos_y;
	int* ensaut;
	double* pos_y0;
	int* mort ;
	int* bonus ;
	BITMAP** images_perso;
	int * pied_en_lair ;
	int * est_freestyle ;
} joueur;


/*
 * Reserve de la mémoire pour le joueur
 */
joueur allouer_joueur(joueur j);

/*
 *Libère la mémoire allouée à un joueur
 */

void liberer_joueur(joueur j);

/*
 * Crée un joueur
 */
joueur init_joueur();

/*
 * Calcule le saut d'un joueur
 */
void sauter(joueur j);

/*
 * Déplace le joueur vers la droite
 */
void deplacer_droite(joueur j);

/*
 * Déplace le joueur vers la gauche
 */
void deplacer_gauche(joueur j);

/*
 * Simule la gravité sur le joueur
 */
void gravite(joueur j,int carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

/*
 * Affiche le joueur
 */
void afficher_joueur(joueur j, BITMAP* buffer, char carte[LONGEUR_NIVEAU][NB_BLOCS_LARGEUR], int decalage) ;
/*
 * Collisions
 */
int collision_droite(int posx1, int posy1, int h1, int l1, int posx2, int posy2, int h2, int l2);

int collision_gauche(int posx1, int posy1, int h1, int l1, int posx2, int posy2, int h2, int l2);

int collision_haut(int posx1, int posy1, int h1, int l1, int posx2, int posy2, int h2, int l2);

int collision_bas(int posx1, int posy1, int h1, int l1, int posx2, int posy2, int h2, int l2);

int collision_toute(int posx1, int posy1, int h1, int l1, int posx2, int posy2, int h2, int l2) ;


int collision_droite_tous(joueur j,char carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

int collision_gauche_tous(joueur j,char carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

int collision_haut_tous(joueur j,char carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

int collision_bas_tous(joueur j,char  carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

int collision_toute_tous_explosif(joueur j, char carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

int collision_toute_tous_pic(joueur j, char carte[LONGEUR_NIVEAU][NB_BLOCS_HAUTEUR]);

#endif /* JOUEUR_H_ */
